#ifndef GRAPH_VISUALISATION_H
#define GRAPH_VISUALISATION_H

#include <Clarity/Math/Vector2.h>
#include <Clarity/Utils/SharedPtr.h>
#include <Clarity/ForwardDeclarations.h>
#include <vector>

using namespace Clarity;
using namespace std;

class AStar;
class ANode;
class GraphEdge;

class GraphVisualisation
{
public:
   GraphVisualisation(AStar *s_AStar, SceneManager *sceneManager);

private:
   void CreateNodeVisualisation(ANode *s_Node);
   void CreateEdgeVisualisation(ANode *s_Node);

   AStar *m_AStar;
   SceneManager *m_sceneManager;

   vector<SharedPtr<SceneNode> > m_sceneNode;
   vector<SharedPtr<ISprite> > m_sprite;
   vector<SharedPtr<RenderableLineSegment> > m_line;
};

#endif
